package com.ce.pms.customer.dao;

import java.util.List;
import java.util.Map;

import com.ce.pms.base.dao.IPmsBaseDao;
import com.ce.pms.customer.model.ProRightDO;
import com.ce.pms.house.model.HouseDomain;
/**
 * 功能描述:
 * <p>
 * 版权所有：中企动力
 * <p>
 * 未经本公司许可，不得以任何方式复制或使用本程序任何部分
 *
 * @author 付湘辉
 * @Created on 2008-05-27
 */
public interface IProRightDao extends IPmsBaseDao<ProRightDO> {
	/**
	 * Function:根据楼栋id查找其下所有房间的有效产权
	 * @param buildingId
	 * @return List<ProRightDO>
	 * Create author:胡煦
	 * Create on:2008-11-10
	 * Edit author:
	 * Edit on:
	 * Why:
	 */
	public Map getEffectiveProRightsByBuildingId(Long buildingId);

	/**
	 * 功能描述:根据房屋实体查询其有效产权  <br>
	 * @param house 房屋实体对象，只使用到ID字段，可new实例
	 * @return
	 *
	 * Create author:付湘辉 <br>
	 * Create on:2008-5-26  <br>
	 * Edit author:  <br>
	 * Edit on:    <br>
	 * Why:     <br>
	 */
	public ProRightDO getEffectiveProRightByHouse(HouseDomain house);

	/**
	 *
	 * 功能描述: 查询除指定房屋外的其它房屋中,所关联的指定合同号或者产权号的数量
	 * 注意:参数contactNO 和 proRightNO 有一个应该为空
	 *
	 * @author 付湘辉
	 * Created on:2008-6-26
	 *
	 * 修改原因：
	 * @param house
	 * @param contactNO
	 * @param proRightNO
	 * @return Integer 返回结果
	 */
	public Integer getProRightCountByHouse(HouseDomain house,String contactNO,String proRightNO);

	/**
	 * Function:根据房间的id查找有效产权do
	 * @param houseId 房间的id
	 * @return
	 * Create author:xuhaidui
	 * Create on:2008-6-10
	 * Edit author:
	 * Edit on:
	 * Why:
	 */
	public ProRightDO getEffectiveProRightByHouseId(Long houseId);

	/**
	 * Function:根据房间的id查找这个房间的上一次变更的产权do
	 * @param
	 * @return
	 * Create author:xuhaidui
	 * Create on:2008-6-10
	 * Edit author:
	 * Edit on:
	 * Why:
	 */
	public ProRightDO getLastProRightByHouseId(Long houseId);

	/**
	 * Function:根据房间的id查找这个房间的最近一次产权do
	 * @param houseId 房间的id
	 * @param validity 如果为true 只查询无效的产权
	 * @return
	 * Create author:xuhaidui
	 * Create on:2008-6-10
	 * Edit author:
	 * Edit on:
	 * Why:
	 */
	public ProRightDO getLastProRightByHouseId(Long houseId,boolean validity);

	/**
	 * Function:根据房间的id查找这个房屋(可以是管理房)的最近一次产权do的前一个产权
	 * @param houseId 房间的id
	 * @param validity 如果为true 只查询无效的产权
	 * @return
	 * Create author:xuhaidui
	 * Create on:2008-6-10
	 * Edit author:
	 * Edit on:
	 * Why:
	 */
	public ProRightDO getLastTwoProRightByHouseId(Long houseId,boolean validity);

	/**
	 *
	 * 功能描述: 添加产权
	 *
	 * @author 付湘辉
	 * Created on:2008-6-10
	 *
	 * 修改原因：
	 * @param proRight
	 * @return
	 * @return ProRightDO 返回结果
	 */
	public ProRightDO saveProRight(ProRightDO proRight);
}
